* keyboard.c (read_key_sequence): Don't confuse mock input with
function-key-map expansion, and continue reading mock events when
the current sequence is unbound.
* keyboard.c (read_key_sequence): After providing a prefix symbol
for a mouse event, modify the mouse event to indicate that that
won't need to be done again, by putting the event's position
symbol in a list.
* keyboard.c (read_key_sequence): When returning mock input which
has run off the end of the current maps, make sure the events get
echoed, and make it into this-command-keys.
* keyboard.c (read_key_sequence): When re-reading a previously
read mouse click which requires a prefix symbol, make sure to set
last_real_key_start appropriately, so we can properly drop
button-down events.